package com.cskaoyan.javase.oop2._1extend._6initialization._3super;

/**
 * @description: super关键字的使用
 * @author: wuguidong@cskaoyan.onaliyun.com
 **/

/**
 * this指向当前对象,super指向子类对象中那片父类成员的区域,近似看成super指向父类对象
 * super和this都作为子类成员方法的一个隐式传参,this可以访问子类自身成员,super可以访问父类成员
 *
 * 它们的区别很小,使用方式也基本一样,比较大的区别:
 *      1,super可以用来区分同名的父子类成员(父子类成员是允许同名的)
 *      2,super表示父类对象,所以它要受访问权限控制,而this是自身,不受权限控制
 *
 */
public class Demo {
    public static void main(String[] args) {

    }
}

class Father {
    private int fatherA = 10;
    int a = 100;
    public void testFather(){
        System.out.println("Father");
    }
}

class Son extends Father {
   private int sonA = 20;
    int a = 200;

    public void testSon(){
        /*System.out.println(this);
        System.out.println(this.sonA);
        System.out.println(this.fatherA);
        System.out.println(super.fatherA);
        super.testFather();*/

        System.out.println(this.sonA);
        //System.out.println(super.fatherA);

        System.out.println(a);
        System.out.println(super.a);
    }
}